package com.atguigu.bigdata.scala.chapter05

object Scala11_Function {

    def main(args: Array[String]): Unit = {

        // TODO 函数式编程 - 柯里化
        // 库里 - Curry
        // 如果参数之间没有关系，那么将参数进行简化会更加方便
        def test( x : Int, y : Int, f : (Int, Int)=>Int ) = {
            f(x, y)
        }

        // 将没有关系的参数当作整体进行传递，是有问题
        println(test(10, 20, _ + _))

        // 所谓的柯里化，就是将参数分隔开
        def test1(x : Int, y : Int)(f : (Int, Int)=>Int) = {
            f(x, y)
        }

        // 函数柯里化可以和其他语法联合使用，让代码逻辑变得简单清晰
        println(test1(10, 20)(_ + _))

    }
}
